﻿#define _CRT_SECURE_NO_WARNINGS 1

//#include<iostream>
//#include<assert.h>
//using namespace std;


//int& func()
//{
//	int x = 0;
//
//	return x;
//}
//
//int main()
//{
//	int& ret = func();
//	ret++;
//	cout << ret << endl;
//
//	int a[10];
//	// 越界不一定报错的
//	cout << a[11] << endl;
//	//a[10] = 1;
//	//a[11] = 1;
//
//	a[12] = 1;
//	a[20] = 1;
//
//	return 0;
//}

//int main()
//{
//	int x;
//	x = 0;
//	int y = 1;
//
//	int& r = x;
//	// 这里将y赋值给r，r不能改变引用指向
//	r = y;
//
//	return 0;
//}

//int main()
//{
//	int x = 0;
//	int& r1 = x;
//	// 权限可以缩小
//	const int& r3 = x;
//
//	const int y = 1;
//	// 权限不能放大
//	//int& r2 = y;
//	const int& r2 = y;
//
//	// 权限有没有放大？没有
//	int z = y;
//
//	// 指针和引用涉及权限缩小和放大
//	const int* p1 = &y;
//	// 权限不能放大
//	// int* p2 = p1;
//	const int* p2 = p1;
//	int* p3 = &z;
//	// 权限可以缩小
//	const int* p4 = p3;
//
//	return 0;
//}

//void func(const int& r)
//{
//
//}
//
//int main()
//{
//	int x = 1;
//	const int y = 2;
//	double d = 1.1;
//
//	const int& r1 = x;
//	const int& r2 = y;
//	const int& r3 = 10;
//
//	const int& r4 = x * 10;
//	const int& r5 = d;
//
//	func(x);
//	func(y);
//	func(10);
//	func(x*10);
//	func(d);
//
//	return 0;
//}

//int main()
//{
//	/*int x = 1;
//	int& r1 = x;
//	r1 = 2;
//
//	int* ptr = &x;
//	*ptr = 3;*/
//
//	return 0;
//}

// 实现一个ADD宏函数的常见问题
//#define ADD(int a, int b) return a + b;
//#define ADD(a, b) a + b
//#define ADD(a, b) a + b;
//#define ADD(a, b) (a + b)
#define ADD(a, b) ((a) + (b))

// 宏函数
// 缺点：复杂/类型安全检查/不能调试
// 优点：预处理阶段替换，不用建立栈帧，本质是一种提效。
//int main()
//{
//	int ret1 = ADD(1, 2); // int ret = (1 + 2);;
//	cout << ret1 << endl;
//
//	if (ADD(1, 2))
//	{}
//
//	int ret2 = ADD(1, 2) * 5; // int ret = (1 + 2)* 5;
//	int x = 1, y = 2;
//
//	int ret2 = ADD(x | y, x & y); // int ret2 = (x | y + x & y);
//
//	return 0;
//}

inline int Add(int x, int y)
{
	int ret = x + y;
	ret += 1;
	ret += 1;
	ret += 1;
	ret += 1;
	ret += 1;
	ret += 1;
	ret += 1;
	ret += 1;

	return ret;
}

#include "F.h"
// 声明
//inline void f1(int i)
//{
//	cout << i << endl;
//}
// 
//void f2(int i);

//int main()
//{
//	//int ret = Add(1, 2);
//	//cout << ret << endl;
//
//	f1(1); // 直接替换
//	f2(2); // call f2(?)
//
//	return 0;
//}

//////////////////////////////////////////////////////////////////////

//void f(int x)
//{
//	cout << "f(int x)" << endl;
//}
//
//void f(int* ptr)
//{
//	cout << "f(int* ptr)" << endl;
//}
//
//int main()
//{
//	f(0);
//	f(NULL);
//	f(nullptr);
//
//	return 0;
//}

//class Stack
//{
//public:
//	// 成员函数
//	void Init(int n = 4)
//	{
//		array = (int*)malloc(sizeof(int) * n);
//		if (nullptr == array)
//		{
//			perror("malloc申请空间失败");
//			return;
//		}
//		capacity = n;
//		top = 0;
//	}
//
//	void Destroy()
//	{
//		free(array);
//		array = nullptr;
//		top = capacity = 0;
//	}
//
//	void Push(int x)
//	{
//		// ...扩容
//		array[top++] = x;
//	}
//
//	int Top()
//	{
//		assert(top > 0);
//		return array[top - 1];
//	}
//
//private:
//	// 成员变量
//	int* array;
//	size_t capacity;
//	size_t top;
//};

//class Date
//{
//public:
//	void Init(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//private:
//	// 为了区分成员变量，一般习惯上成员变量
//	// 会加一个特殊标识，如_ 或者 m开头
//	int _year; // year_ m_year
//	int _month;
//	int _day;
//};
//
//// C++兼容C中struct的用法
//typedef struct ListNodeC
//{
//	struct ListNodeC* next;
//	int val;
//}LTNode;
//
//// 不再需要typedef，ListNodeCPP就可以代表类型
//struct ListNodeCPP
//{
//	void Init(int x)
//	{
//		next = nullptr;
//		val = x;
//	}
//private:
//	ListNodeCPP* next;
//	int val;
//};
//
//#include"F.h"
//
//int main()
//{
//	LTNode* n1 = NULL;
//	struct ListNodeC* n2 = NULL;
//
//	ListNodeCPP node;
//	node.Init(1);
//
//	Stack st;
//	st.Init();
//	st.Push(1);
//	st.Push(2);
//	st.Push(3);
//
//	cout << st.Top() << endl;
//
//	st.Destroy();
//
//	Date d1;
//	d1.Init(2025, 4, 19);
//
//	return 0;
//}

// 类域解决类和类之间的命名冲突
// 命名空间域 全局的函数/变量/类型的命名冲突
//class stack
//{
//public:
//	void push(int x);
//	void pop();
//
//	//private:
//public:
//	int _top;		// 声明
//	int _capacity;
//};
//
//class queue
//{
//public:
//	void push(int x);
//	void pop();
//};
//
//int main()
//{
//	stack st;
//	st.push(1);
//
//	queue q;
//	q.push(1);
//
//	//stack::_top++;
//	stack st1;
//	st1._top++;
//	stack st2;
//	st1._top++;
//	stack st3;
//
//
//	return 0;
//}

//class stack
//{
//public:
//	void push(int x);
//	void pop();
//
//	//private:
//public:
//	int _top;		// 声明
//	int _capacity;
//};
//
//class queue
//{
//public:
//	void push(int x);
//	void pop();
//};
//
//int main()
//{
//	stack st;
//	st.push(1);
//
//	queue q;
//	q.push(1);
//
//	//stack::_top++;
//	stack st1;
//	st1._top++;
//	stack st2;
//	st1._top++;
//	stack st3;
//
//
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (num % 2 == 1)
//		printf("%d 是奇数\n", num);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (num % 2 == 1)
//		printf("%d 是奇数\n", num);
//	else
//		printf("%d 是偶数\n", num);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age >= 18)
//		printf("成年\n");
//	else
//		printf("未成年\n");
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age >= 18)
//		printf("成年了\n");
//	printf("可以谈恋爱了\n");
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age >= 18) //if 后使⽤{} 控制多条语句-这个块也叫：程序块，或者复合语句
//	{
//		printf("成年了\n");
//		printf("可以谈恋爱了\n");
//	}
//	return 0;
//}
//
//
//
//
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age >= 18) //if 后使⽤{} 控制多条语句-这个块也叫：程序块，或者复合语句
//	{
//		printf("成年了\n");
//		printf("可以谈恋爱了\n");
//	}
//	else //else 后使⽤{}控制多条语句-这个块也叫：程序块，或者复合语句
//	{
//		printf("未成年\n");
//		printf("不可以早恋哦\n");
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if (num == 0)
//		printf("输⼊的数字是0\n");
//	else if (num > 0) //这⾥的if 相当于嵌套在else语句中，形成了嵌套结构
//		printf("输⼊的数字是正数\n");
//	else
//		printf("输⼊的数字是负数\n");
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	if(num > 0)
//	{
//		if (num % 2 == 0)
//			printf("偶数\n");
//		else
//			printf("奇数\n");
//	}
//else
//{
//	printf("⾮正数\n");
//}
//return 0;
//}

////⽅法1
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age < 18)
//		printf("少年\n");
//	else if (age <= 44)
//		printf("⻘年\n");
//	else if (age <= 59)
//		printf("中⽼年\n");
//	else if (age <= 89)
//		printf("⽼年\n");
//	else
//		printf("⽼寿星\n");
//	return 0;
//}
////带上⼤括号更容易看明⽩
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age < 18)
//	{
//		printf("少年\n");
//	}
//	else
//	{
//		if (age <= 44)
//		{
//			printf("⻘年\n");
//		}
//		else
//		{
//			if (age <= 59)
//			{
//				printf("中⽼年\n");
//			}
//			else
//			{
//				if (age <= 89)
//					printf("⽼年\n");
//				else
//					printf("⽼寿星\n");
//			}
//		}
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 2;
//	if (a == 1)
//		if (b == 2)
//			printf("hehe\n");
//		else
//			printf("haha\n");
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 2;
//	if (a == 1)
//	{
//		if (b == 2)
//			printf("hehe\n");
//		else
//			printf("haha\n");
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 2;
//	if (a == 1)
//	{
//		if (b == 2)
//			printf("hehe\n");
//	}
//	else
//	{
//		printf("haha\n");
//	}
//	return 0;
//}
//if (x == 3) {
//	printf("x is 3.\n");
//}
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (18 <= age <= 36)
//	{
//		printf("⻘年\n");
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//	if (age >= 18 && age <= 36)
//	{
//		printf("⻘年\n");
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d", &a);
//	if (a > 5)
//		b = 3;
//	else
//		b = -3;
//	printf("%d\n", b);
//	return 0;
//}
////改造后：
//#include <stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d", &a);
//	b = a > 5 ? 3 : -3;
//	printf("%d\n", b);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int m = a > b ? a : b;
//	printf("%d\n", m);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int flag = 0;
//	if (!flag)
//	{
//		printf("do something\n");
//	}
//	return 0;
//}   
//int month = 0;
//scanf("%d", &month);
//if (month >= 3 && month <= 5)
//{
//	printf("春季\n");
//}
//int month = 0;
//scanf("%d", &month);
//if (month == 12 || month == 1 || month == 2)
//{
//	printf("冬季\n");
//}
//#include <stdio.h>
////代码1
//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//	if (year % 4 == 0 && year % 100 != 0)
//		printf("是闰年\n");
//	else if (year % 400 == 0)
//		printf("是闰年\n");
//	return 0;
//}
////代码2
//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
//		printf("是闰年\n");
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 0, a = 0, b = 2, c = 3, d = 4;
//	i = a++ && ++b && d++;
//	//i = a++||++b||d++;
//	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
//	return 0;
//}
//switch (expression) {
//case value1: statement
//case value2: statement
//default: statement
//}
#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n % 3 == 0)
		printf("整除，余数为0\n");
	else if (n % 3 == 1)
		printf("余数是1\n");
	else
		printf("余数是2\n");
	return 0;
}
//#include <stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	switch (n % 3)
//	{
//	case 0:
//		printf("整除，余数为0\n");
//		break;
//	case 1:
//		printf("余数是1\n");
//		break;
//	case 2:
//		printf("余数是2\n");
//		break;
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	switch (n % 3)
//	{
//	case 0:
//		printf("整除，余数为0\n");
//	case 1:
//		printf("余数是1\n");
//	case 2:
//		printf("余数是2\n");
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	    case 1:
//			printf("星期⼀\n");
//			break;
//		case 2:
//			printf("星期⼆\n");
//			break;
//		case 3:
//			printf("星期三\n");
//			break;
//		case 4:
//			printf("星期四\n");
//			break;
//		case 5:
//			printf("星期五\n");
//			break;
//		case 6:
//			printf("星期六\n");
//			break;
//		case 7:
//			printf("星期天\n");
//			break;
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	    case 1:
//		case 2:
//		case 3:
//		case 4:
//		case 5:
//			printf("⼯作⽇\n");
//			break;
//		case 6:
//		case 7:
//			printf("休息⽇\n");
//			break;
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	switch (day)
//	{
//	    case 1:
//		case 2:
//		case 3:
//		case 4:
//		case 5:
//			printf("⼯作⽇\n");
//			break;
//		case 6:
//		case 7:
//			printf("休息⽇\n");
//			break;
//		default:
//			printf("输⼊错误\n");
//			break;
//	}
//	return 0;
//}
//// 代码1
//#include <stdio.h>
//int main()
//{
//	if (1)
//		printf("hehe\n"); //if后边条件满⾜，打印⼀次hehe
//	return 0;
//}
////代码2
//#include <stdio.h>
//int main()
//{
//	while (1)
//		printf("hehe\n"); //while后边的条件满⾜，死循环的打印hehe
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		printf("%d ", i);
//		i = i + 1;
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	while (n)
//	{
//		printf("%d ", n % 10);
//		n /= 10;
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 1; i <= 100; i++)
//	{
//		if (i % 3 == 0)
//			sum += i;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
////⼩⼩的优化
////如果能直接产⽣3的倍数的数字就省去了多余的循环和判断
//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 3; i <= 100; i += 3)
//	{
//		sum += i;
//	}
//	printf("%d\n", sum);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	do
//	{
//		printf("%d ", i);
//		i = i + 1;
//	} while (i <= 10);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			break;//当i等于5后，就执⾏break，循环就终⽌了
//		printf("%d ", i);
//		i = i + 1;
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			continue;
//		//当i等于5后，就执⾏continue，直接跳过continue的代码，去循环的判断的地⽅
//		//因为这⾥跳过了i = i+1，所以i⼀直为5，程序陷⼊和死循环
//		printf("%d ", i);
//		i = i + 1;
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			continue;//这⾥continue跳过了后边的打印，来到了i++的调整部分
//		printf("%d ", i);
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	//循环产⽣100~200的数字
//	for (i = 100; i <= 200; i++)
//	{
//		//判断i是否为素数
//		//循环产⽣2~i-1之间的数字
//		int j = 0;
//		int flag = 1;//假设i是素数
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag == 1)
//			printf("%d ", i);
//	}
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	printf("hehe\n");
//	goto next;
//	printf("haha\n");
//next:
//	printf("跳过了haha的打印\n");
//	return 0;
//}
for (...)
{
	for (...)
	{
		for (...)
		{
			if (disaster)
				goto error;
		}
	}
}
error:
//...